/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.acad;

import java.io.Serializable;

/**
 *
 * @author puspa
 */
public class KartuRencanaStudi implements Serializable {

    private String semester;
    private Mahasiswa mahasiswa;
    private int jumlahSKS;

    /**
     * @return the semester
     */
    public String getSemester() {
        return semester;
    }

    /**
     * @param semester the semester to set
     */
    public void setSemester(String semester) {
        this.semester = semester;
    }

    /**
     * @return the mahasiswa
     */
    public Mahasiswa getMahasiswa() {
        return mahasiswa;
    }

    /**
     * @param mahasiswa the mahasiswa to set
     */
    public void setMahasiswa(Mahasiswa mahasiswa) {
        this.mahasiswa = mahasiswa;
    }

    /**
     * @return the jumlahSKS
     */
    public int getJumlahSKS() {
        return jumlahSKS;
    }

    /**
     * @param jumlahSKS the jumlahSKS to set
     */
    public void setJumlahSKS(int jumlahSKS) throws Exception {
        if (jumlahSKS < 0 || jumlahSKS > 24) {
            // sks kurang dari 0 dan lebih dari 24
            throw new Exception("jumlah sks di luar batas");
        } else {
            // sks antara 0 sd 24
            if (mahasiswa.getIps() >= 3) {
                // ips lebih besar dari 3
                this.jumlahSKS = jumlahSKS;
            } else {
                // ips kurang dari 3
                if (mahasiswa.getIps() < 3 && jumlahSKS > 21) {
                    throw new Exception("jumlah sks tidak sesuai ips");
                } else if (mahasiswa.getIps() < 2.5 && jumlahSKS > 18) {
                    throw new Exception("jumlah sks tidak sesuai ips");
                } else {
                    this.jumlahSKS = jumlahSKS;
                }
            }

        }
    }
}
